خرید بک لینک
to sync 2 or more postgresql database that exist on seprate server (with specific IP) we have some way.  First we should tell about replication. replication uses when we want to make an backup from current exist postgresql DB. not a fix backup, an streaming replication that replicate each changes in primary DB on others backup DB. So we can use this to make a mirror server, but what happen if we use write query (e.g. insert, update) on the secondery db (backup db)? ok we should not allow to write on db because every change on backup db cause to dismiss data because new data has been written on that when update from primary db. So what should we do? we should forward write query to primary db and after primary DB changes the replication send new data to backup DB so the user think write on the DB really worked while the write query forwarded to primary DB. we start with Replication config.   1. Replication to make an replication server we only need to use this command: pg_basebackup -D /path/to/new/data/dir -R --slot=some_name -C -h host -p port -U dbuser it's realy a simple way to make an database for replication. note that this command should be run on the backup server, so `host` should the IP address of primary server. maybe you can not coect to primary srever because postgresql denied access to db from other remote server (only localhost access is allowed). so to change this you should change below file. /etc/postgresql/14/main/pg_hba.conf so you can

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 21 خرداد 1403 ساعت: 16:03

به نام خدا.سلام داستان از اونجا شروع شد که برای انجام یکی از تسک ها نیاز بود از دو دستور زیر استفاده کنم: iptables -t mangle -A OUTPUT -p tcp --dport 443 -m mark --mark 1 -j ACCEPT iptables -t mangle -A OUTPUT -p tcp --dport 443 -j NFQUEUE --queue-num 0 این دستوارت مربوط به iptables هستند و دستور اول بیان میکنه که هر بسته ای به پورت مقصد 443 که با عدد ۱ مارک شده بود رو بپذیر در حالیکه دستور زیر به iptable میگه همه ی بسته هایی که به مقصد 443 میرن رو به NFQUEUE بفرست. NFQUEUE چی هست؟ عملا یک ویژگی توی کرنل لینوکس اضافه شده که میشه به کمک اون یک سری بسته ها رو درون یک صفی قرار داد که برنامه های یوزر اسپیس بتونن اونها رو پردازش کنن و اونها رو تغییر بدن یا جلوی بعضی از اونها رو بگیرند یا کلا ارسال اونها رو ادامه بدن و... منم هدفم همین بود که همه ی بسته های client hello رو در بیارم و دستکاری کنم پس از این استفاده کردم. همچنین برای استفاده از این قابلیت توی زبان سی باید از یک لایبراری به اسم libnetfilter_queue استفاده کرد و هدر هاش رو لود کرد و کتابخونه اش رو به برنامه پیوند زد. متاسفانه اون دو تا دستور اول مربوط به iptable توی دستگاه خطا میداد و عملا ساپورت نمیشد. خود iptable توی دستگاه بود اما ویژگی match mark و ویژگی NFQUEUE رو نداشتن. بعد از تحقیق متوجه شدم این ها همه به صورت کرنل ماژول هستن و حتی توی سیستم خوم هم که کار میکنه با lsmod میشه اونها رو دید. پس به این نتیجه رسیدم که اگه سورس image مربوط به دستگاه رو بگیرم و کامپایل کنم احتمالا بعدش میتونم توی کانفیگ لینوکس اش اون چیزایی که میخواهیم رو اضافه کنم. اما اینکار کمی طولانی به نظر میرسد و احساس کردم برای اجرای این

برچسب: نویسنده: سارا زارعی‌پور تاريخ: چهارشنبه 16 خرداد 1403 ساعت: 20:41

صفحه بندی